/*
* 业务模块
* */
const data = require("./data.json")
const path = require("path")
const fs = require("fs")

//自动生成图书编号(自增)
let maxBookCode = () => {
    let arr = []
    data.forEach((item)=>{
        arr.push(item.id)
    })
    return Math.max.apply(null, arr)
}

//渲染主页
exports.showIndex = (req, res) => {
    res.render('index', {list : data})
}

exports.toAddBook = (req, res) => {
    res.render('addBook', {})
}

exports.addBook = (req, res) => {
    let info = req.body  //获取表单数据
    let book = {}
    for(let key in info){
        book[key] = info[key]
    }
    book.id = (maxBookCode() + 1).toString()    //"".join(maxBookCode() + 1)  //目的是改为字符串
    console.log(book)
    data.push(book)
    //需要把内存中的数据写入文件
    //stringify第三个参数 表示缩进
    fs.writeFile(path.join(__dirname, "data.json"), JSON.stringify(data, null, 4), (err)=>{
        if(err){
            res.send("server error")
        }
        res.redirect("/")  //文件写入成功 成功跳转到主页面
    })
}

//跳转修改图书的页面
exports.toEditBook = (req, res) => {
    let id = req.query.id   // 获取传递过来的id
    let book = {}
    data.forEach((item) => {
        if(id === item.id){
            book = item
            return false   //forEach的callback是个函数，应该用return
            //使用 return; 或者 return true; 来代替 continue 语句；
            //使用 return false; 来代替 break 语句；
        }
    })
    res.render('editBook', book)
}

//修改图书数据
exports.editBook = (req, res) => {
    let info = req.body
    data.forEach((item) => {
        if(info.id === item.id){
            for(let key in item){
                item[key] = info[key]
            }
        }
        return false
    })
    //需要把内存中的数据写入文件
    //stringify第三个参数 表示缩进
    fs.writeFile(path.join(__dirname, "data.json"), JSON.stringify(data, null, 4), (err)=>{
        if(err){
            res.send("server error")
        }
        res.redirect("/")  //文件写入成功 成功跳转到主页面
    })
}

//

exports.deleteBook = (req, res) => {
    let id = req.query.id   // 获取传递过来的id
    data.forEach((item, index, arr) => {
        if(id === item.id){
            arr.splice(index, 1);   //删除
        }
        return false
    })
    fs.writeFile(path.join(__dirname, "data.json"), JSON.stringify(data, null, 4), (err)=>{
        if(err){
            res.send("server error")
        }
        res.redirect("/")  //文件写入成功 成功跳转到主页面
    })
}